
/**
 * @Project : Clion_ProgrammingExercises
 * @File : 0870
 * @Author : WangRuoyu 
 * @Date : 2023/5/23 17:03
 */

#include "iostream"
#include "algorithm"
#include "unordered_map"

using namespace std;

int main() {
    int n;
    scanf("%d", &n);

    unordered_map<int, int> map;

    for (int i = 0; i < n; ++i) {
        int x;
        scanf("%d", &x);
        for (int j = 2; j <= x / j; ++j) {
            while (x % j == 0) {
                map[j]++;
                x /= j;
            }
        }
        if (x > 1) map[x]++;
    }

    const long long MOD = 1e9 + 7;

    long long res = 1;
    for (unordered_map<int, int>::iterator i = map.begin(); i != map.end(); i++) {
        res = (res * (long long) (i->second + 1)) % MOD;
    }

    printf("%d", res);

    return 0;
}